/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mail;

import java.io.Serializable;

/**
 *
 * @author Lab-214-21
 */
public class Message implements Serializable{
  
  private RemitenteDestinatario remitentedestinatario;
  private Contenido contenido;
  private String estado;
/**
 * Metodo para inicializar para poder enviar y recibir mensajes
 * @param remitentedestinatario
 * @param contenido 
 */
    public Message(RemitenteDestinatario remitentedestinatario, Contenido contenido) {
        this.remitentedestinatario = remitentedestinatario;
        this.contenido = contenido;
        estado= "nuevo";
    }
    /**
     * Metodo que cambia de estado leido al mensaje
     */
    public void mensajeleido(){
        if (!this.estado.equals("eliminado") )
                this.estado="leido";
    }
    /**
     * Metodo que cambia a estado eliminado
     */
    public void mensajeeliminado(){
        
       this.estado = "eliminado";
    }
    /**
     * 
     * @return  Devuelve Mensaje en formato [sender,destinatario,asunto, texto]
     */
   public String mostrarMensaje(){
       String remitentedestinatario1=remitentedestinatario.toString();
        String contenido1=contenido.toString();
        return remitentedestinatario1+","+contenido1;
   }
  
   
   
   /**
    * 
    * @return Cadena de string que me devuelve sender, destinatario, asunto y texto del mensaje formateado
    */
    @Override
    public String toString(){
        
        String remitentedestinatario1=remitentedestinatario.toString();
        String contenido1=contenido.toString();
        
        String cadena1[] = remitentedestinatario1.split(",");
        String cadena2[] = contenido1.split(",");
        
        return "Remitente: "+ cadena1[0]+ "\n"+
                "Destinatario: "+ cadena1[1]+"\n"+
                "Asunto: "+cadena2[0]+"\n"+
                "Mensaje: "+cadena2[1];
        
        
    }
    /**
     * Metodo que devuelve el estado del mensaje
     * @return nuevo, leido, eliminado
     */
    public String Estado() {
        return estado;
    }
    
  
}
